
package bitclub;


import herramientas.BitUtil;
import java.util.Date;
import persistencia.PArticuloAlquilado;

/**
 * @author BIT COMPANY
 */
public class ArticuloAlquilado implements Comparable{
    
    private Articulo articulo;
    private Date fechaEntrega;
    private double precioAlquiler;

    public ArticuloAlquilado(Articulo articulo, Date fechaEntrega, double precioAlquiler) {
        this.articulo = articulo;
        this.fechaEntrega = fechaEntrega;
        this.precioAlquiler=precioAlquiler;
    }

    public Articulo getArticulo() {
        return articulo;
    }

    public void setArticulo(Articulo articulo) {
        this.articulo = articulo;
    }

    public Date getFechaEntrega() {
        return fechaEntrega;
    }

    public void setFechaEntrega(Date fechaEntrega) {
        this.fechaEntrega = fechaEntrega;
    }

    public double getPrecioAlquiler() {
        return precioAlquiler;
    }

    public void setPrecioAlquiler(double precioAlquiler) {
        this.precioAlquiler = precioAlquiler;
    }

    
    @Override
    public boolean equals(Object obj) {
        int id1;
        int id2;
        
        ArticuloAlquilado otro = (ArticuloAlquilado) obj;
        id1 = this.getArticulo().getId();
        id2 = otro.getArticulo().getId();
        
        if (id1==id2){
            return true;
        } else {
            return false;
        }
    }

    @Override
    public int hashCode() {
        int hash = 7;
        hash = 97 * hash + (this.articulo != null ? this.articulo.hashCode() : 0);
        return hash;
    }

    @Override
    public String toString() {
        return "["+BitUtil.muestraEuros(this.getPrecioAlquiler())+"]  "+this.getArticulo().getTitulo()+ " ("+BitUtil.muestraFecha(this.fechaEntrega)+")";
    }    

    @Override
    public int compareTo(Object o) {
        ArticuloAlquilado aa = (ArticuloAlquilado) o;
        if (aa.getPrecioAlquiler()>this.getPrecioAlquiler()){
            return 1;
        }else if (aa.getPrecioAlquiler()<this.getPrecioAlquiler()){
            return -1;
        }else{
            if(aa.getArticulo().getId()>this.getArticulo().getId()){
                return 1;
            }else if(aa.getArticulo().getId()<this.getArticulo().getId()){
                return -1;
            }else{
                return 0;
            }
        }
    }
    
    public void eliminar (){
        PArticuloAlquilado.eliminarBD(this);
    }
}
